// 全局请求封装
let base_url = ''
// 请求超出时间
const timeout = 120000
// 需要修改token，和根据实际修改请求头
export default (params) => {
	let url = params.url;
	let method = params.method || "GET";
	let data = params.data || {};
	let header = {
		'Content-Type': 'x-www-form-urlencode',
		// 'apiticket': uni.getStorageSync('apiticket')
	}
	if(url.indexOf('/ai/work/articleList') == -1) {
		header = {
			'Content-Type': 'application/json',
			'apiticket': uni.getStorageSync('apiticket')
		};
	}
	// 根据type判断请求的ip
	if (params.type == 1) {
		// base_url = 'http://192.168.1.100:1989'
		base_url = 'https://api2.aimlt.com'  // 线上
		// base_url = 'https://test-api2.aimlt.com' // 测试环境
	} else if (params.type == 2) {
		base_url = 'https://api2.aimlt.com'
		// base_url = 'https://test-api2.aimlt.com'
	} else if (params.type == 3) {
		base_url = 'https://connect.aimlt.com' // 线上环境
		// base_url = 'https://test-connect.aimlt.com' // 测试环境
	} else if (params.type == 4) {
		base_url = 'https://api-oss.aimlt.com'
	}
	
	// if (method == "POST") {
	// 	header = {
	// 		'Content-Type': 'application/json',
	// 		'apiticket': uni.getStorageSync('apiticket')
	// 	};
	// }
	// 获取本地token
	if (uni.getStorageSync("acctoken")) {
		header['Authorization'] = 'Bearer ' + uni.getStorageSync("acctoken");
	}
	return new Promise((resolve, reject) => {
		uni.request({
			url: base_url + url,
			method: method,
			header: header,
			data: data,
      timeout,
			success(response) {
				const res = response
				// 根据返回的状态码做出对应的操作
				//获取成功
				// if(res.data || ) {}
				const code = res.data.errcode
				const code2 = res.data.code 
				const result = res.data
				if (result) {
					resolve(result);
					if(code == 200 || res.data.code == 200) {
						resolve(result);
					} else {
						
					 if (code && code == 'SYS_ERR_AUTHTICKET') {
							error()
							return
						}
						if (code && code == 'SYS_ERR_AUTHTICKET_NOT') {
						 error()
						 return
						}
						if (code && code == '40042') {
							error()
							return
						}
						if (code && code == '40043') {
							error()
							return
						}
						if (code && code == '401013') {
							error()
							return
						}
						if (code && code == '401015') {
							error()
							return
						}
						if (code && code == 'ERR_INSUFFICIENT_BALANCE') {
							uni.showToast({
								title: res.data.errmsg,
								icon: "none",
								duration: 5000
							})
							return
						}
						if (code && code == '300036' || code == '401020') {
							uni.showToast({
								title: res.data.errmsg,
								icon: "none",
								duration: 5000
							})
							return
						}
						if (code2 && code2 == 500 || code == '500') {
							console.log('ghgfhggr', res.data.msg)
							uni.showToast({
								title: res.data.msg || '网络异常',
								icon: "none",
								duration: 5000
							})
							return
						}
						
					}
				} 
			},
			fail(err) {
				console.log(err)
				// if (err.errMsg.indexOf('request:fail') !== -1) {
				// 	uni.showToast({
				// 		title: '请求超时',
				// 		icon: "error",
				// 		duration: 2000
				// 	})
				// } else {
				// 	uni.showToast({
				// 		title: '未知异常',
				// 		duration: 2000,
				// 		icon: "error",
				// 	})
				// }
				reject(err);
 
			},
			complete() {
				// 不管成功还是失败都会执行
				// uni.hideLoading();
				// uni.hideToast();
			}
		});
	}).catch(() => {});
};

function error() {
	console.log('base里面')
	uni.clearStorageSync()
	uni.showModal({
		title: "提示",
		content: "请登录",
		success: res => {
			if (res.confirm) {
				setTimeout(() => {
					uni.clearStorageSync()
					uni.navigateTo({
						url: "/pages/login/index",
					})
			  }, 1000);
			}
		}
	})
}


	